home *** CD-ROM | disk | FTP | other *** search
- Automata V1.0 by Mike Dryja Copyright (C) 1987 All Rights Reserved
-
- DISCLAIMERS AND THINGS OF THAT NATURE
-
- Permission is hereby granted to copy this program for non-profit ventures.
- In addition, anyone who would like to include this program on a disk
- on which profits will be made must contact me for my approval. As
- of April 13, 1987, permission of this type is granted to the Amigan:
- Apprentice and Journeyman, Fred Fish, and Amazing Magazine. In any case,
- this document file MUST be included in its entirity during any sort of
- distribution.
-
- If you find this program of any aid to you, I would appreciate a
- donation of any amount ($10.00 is suggested). A donation will put you
- on my mailing list for any further programs, and if Automata is updated,
- you will receive first notice. Send any correspondence to:
- Mike Dryja
- 5262 Vincent Trail
- Washington, MI 48094
-
- I created this program with the TDI Modula-2 package, and the folks over
- there want me to include this line in my software: Developed using TDI
- Modula-2/Amiga. TDI Software Inc. Dallas, USA.
-
- WHAT IS AUTOMATA?
-
- With that out of the way, let me give you some insight on just what the
- Automata program is, and does. It is based on the Byte article referenced
- below. You might want to think of Automata as the game of Life (you know,
- the one where the little dots reproduce, etc), except only in one
- dimension. Each generation in the game of Life takes up a whole screen,
- while in one dimension cellular automata (That is the scientific name, by
- the way), one generation takes up just one line. In addition, there are
- four different states a cell can be in, represented in this program by
- four different colors.
-
- The next generation is determined by the state of the current generation.
- This is done by taking a certain cell's state number, adding both of its
- neighbors' state numbers, taking this sum and enforcing a rule on it,
- then plotting the next generation. For example, let's say we have the
- following automata generation:
-
- 0 1 2 3 1 2 2
-
- Let's also say that the following rule is in effect:
-
- Sum : 0 1 2 3 4 5 6 7 8 9
- New Cell : 3 2 1 3 2 0 2 1 3 1
-
- Now, take the cell in the automata generation which has the state number of
- 3 (the middle one). The sum of that state number, plus its two neighbors
- (2 + 1) equals 6. Take the sum, 6, and look it up on the table. Under 6
- we find the new cell state is 2. Therefore, the cell which used to be 3
- has now evolved in the next generation as 2.
-
- By using this method, there are a lot of different and exciting possibil-
- ities. By using Automata, you can vary the rule as much as you want.
- In my version, there are only four possible states each cell can possess,
- 0 through 3. On the screen, 0 is black, 1 is red, 2 is green, and 3 is
- blue. The original rule has been taken from the issue of Byte, and
- possesses a very intricate pattern. Remember when you make your own rule,
- that there should be 10 digits (for sums 0 through 9), and the rule can
- only have the numbers 0 through 3 in it, as there are no states past 3.
- So for example, if you type the rule 0123232011, this means:
-
- Sum : 0 1 2 3 4 5 6 7 8 9
- New Cell : 0 1 2 3 2 3 2 0 1 1
-
- Hopefully you now have some idea on just what Automata is. But this just
- scratches the surface, as the field of cellular automata is very complex.
- I refer you to the two magazine articles listed below for more study.
- Reading them will allow you to have much more enjoyment out of this
- program.
-
- BUGS, OMISSIONS, USING THIS MODULE, ETC.
-
- 1) As for this version, V1.0, there is just one bug which I could not zap.
- When you are entering the rule number, you may get confused with the
- scrolling of the rule as you approach the last digit. I did not want
- this to happen, rather I wished for the cursor to remain on the last
- digit. But I couldn't do this for some reason or another.
-
- 2) One feature is missing from this program, which may cause some of you
- some problems. I wanted the user to be able to input the original
- state, but at this time it is not implemented. The computer has a
- random initial generation, which in itself can be changed by restarting
- the program through the menu.
-
- Those are two things I wanted to clear up, and hopefully will in a future
- version.
-
- For those of you who want to make your own Automata program, I have the
- basic code in a separate library module, AMCalc. By studying this
- module, and how it is interfaced with the other modules, you should be
- able to get a pretty good idea of how everything was done. All I ask is
- that if you do use the module, please let me know. If it is a commercial
- venture, remember, this program is copyrighted, so we can discuss
- financial concerns. But if you will be just using it in the public
- domain, by all means, go ahead! When you received this program, hope-
- fully all the source files were attached (There are a lot of them!). If
- not, drop me a line, and I'll see if I can get them to you.
-
- REFERENCES
-
- Hapgood, Fred, "Let There Be Life," Omni, April 1987, pp. 40-46+.
- This article describes where automata came from, and has an excellent
- introduction on how to make your own rules. Past that, it describes
- what MIT is doing in this area.
-
- Perry, Kenneth E., "Abstract Mathematical Art," Byte, December 1986, pp.
- 181-192.
- This article has the main algorithms, and 100 very interesting rules.
- If you just like looking at the automata, get this issue, as the $3.50
- is worth it for the 100 rules alone.
-
-